package com.cmwa.solution.business.infodisclosure.regulatoryreport.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cmwa.solution.annotation.MybatisDao;
import com.cmwa.solution.base.entity.SearchParam;
import com.cmwa.solution.business.infodisclosure.institution.entity.InstitutionVo;
import com.cmwa.solution.business.infodisclosure.regulatoryreport.entity.RegulatoryReportVo;
import com.cmwa.solution.sys.attach.entity.AttachVo;

@MybatisDao
public interface RegulatoryReportDao {
	/**
	 * 监管报告列表查询
	 * @param param
	 * @return
	 */
	public List<RegulatoryReportVo> getRegulatoryReportListPage(SearchParam param);
	/**
	 * 新增监管报告
	 * @param regulatoryReportVo
	 */
	public void addRegulatoryReport(RegulatoryReportVo regulatoryReportVo);
	/**
	 * 根据参数查询报告附件id
	 * @param param
	 * @return
	 */
	public List<RegulatoryReportVo> getReportAttInfo(SearchParam param);
	/**
	 * 获取监管报告饼图需要的数据
	 * @param param
	 * @return
	 */
	public List<Map<String, String>> getReportChart(SearchParam param);
	/**
	 * 监管报告信息查询简化版
	 * @param param
	 * @return
	 */
	public RegulatoryReportVo getRegulatoryReportInfoNew(SearchParam param);
	/**
	 * 监管报告列表查询简化版
	 * @param param
	 * @return
	 */
	public List<RegulatoryReportVo> getRegulatoryReportListPageNew(SearchParam param);
	/**
	 * 根据参数查询报告附件信息简化版
	 * @param param
	 * @return
	 */
	public List<AttachVo> getReportAttInfoNew(SearchParam param);
	/**
	 * 更新监管报告信息
	 * @param regulatoryReportVo
	 */
	public void updateRegulatoryReport(RegulatoryReportVo regulatoryReportVo);
	/**
	 * 根据条件查询监管报告Id(用于首页监管报告披量下载)
	 * @param param
	 * @return
	 */
	public List<String> getRegulatoryReportIdNew(SearchParam param);
	/**
	 * 查询监管报告的机构
	 * @return
	 */
	public List<InstitutionVo> getReportInstList();
	/**
	 * 根据监管机构id查询监管报告类型（用于下拉框联动）
	 * @param instId
	 * @param reportTypeName TODO
	 * @return
	 */
	public List<Map<String, String>> getReportTypesByInst(@Param("instId") String instId,@Param("reportName")  String reportName);
	
	
	/**
	 * 逻辑删除
	 * @param ids
	 */
	public void logicDelete(@Param("ids")String ids);
	
}
